babl.git
11 years agospell out roadmap with more detailed overview
Øyvind Kolås [Sat, 11 Oct 2014 18:37:11 +0000 (20:37 +0200)]
spell out roadmap with more detailed overview

11 years agodocs: added a roadmap/architecture document.
Øyvind Kolås [Thu, 9 Oct 2014 17:16:38 +0000 (19:16 +0200)]
docs: added a roadmap/architecture document.

11 years agobabl: Fix message printed when memory function pointers don't match
Mukund Sivaraman [Wed, 3 Sep 2014 04:39:55 +0000 (10:09 +0530)]
babl: Fix message printed when memory function pointers don't match

11 years agoextensions: Register CMYK u8 format
Jon Nordby [Mon, 11 Aug 2014 23:48:21 +0000 (01:48 +0200)]
extensions: Register CMYK u8 format

11 years agoextensions: Fix M/Y channels swapped for CMYK float
Jon Nordby [Mon, 11 Aug 2014 23:45:13 +0000 (01:45 +0200)]
extensions: Fix M/Y channels swapped for CMYK float

Pretty sure CMYK should have channel order cmyk and not cymk

11 years agoRemove extra programming languages from the doap file.
Michael Henning [Thu, 7 Aug 2014 23:45:05 +0000 (19:45 -0400)]
Remove extra programming languages from the doap file.

11 years agoDOAP file: add Ruby programming language.
Sven Claussner [Thu, 7 Aug 2014 17:47:58 +0000 (19:47 +0200)]
DOAP file: add Ruby programming language.

11 years agoFix DOAP file
Sven Claussner [Wed, 6 Aug 2014 19:42:17 +0000 (21:42 +0200)]
Fix DOAP file

Remove category.
Remove M4 programming language, because we don't develop with it
(only the Autotools use it internally).

11 years agoUpdate babl.doap and AUTHORS
Sven Claussner [Sun, 3 Aug 2014 05:38:39 +0000 (07:38 +0200)]
Update babl.doap and AUTHORS

Make babl.doap compliant to the new DOAP file style (GUADEC 2014):
* Add new mandatory fields 'description' and 'programming-language'.
* Add field 'category'

Add bug tracker URL.
Update mailing list adress.
Remove trailing white spaces.
Add me to AUTHORS.

11 years agoFix crash if failing to normalize path for loading extensions
Jon Nordby [Fri, 18 Jul 2014 16:00:20 +0000 (18:00 +0200)]
Fix crash if failing to normalize path for loading extensions

Can for instance happen when running with "BABL_PATH=something:",
which easily happens in scripts on form BABL_PATH=something:${BABL_PATH}

11 years agobabl: make malloc implementation stability sanity check non-fatal
Øyvind Kolås [Wed, 2 Jul 2014 04:20:13 +0000 (06:20 +0200)]
babl: make malloc implementation stability sanity check non-fatal

11 years agoextensions: use more integer instructions for float lookups
Øyvind Kolås [Sun, 29 Jun 2014 19:22:14 +0000 (21:22 +0200)]
extensions: use more integer instructions for float lookups

11 years agoextension: make rgb8 to rgba8 conversion faster
Øyvind Kolås [Sun, 29 Jun 2014 18:15:11 +0000 (20:15 +0200)]
extension: make rgb8 to rgba8 conversion faster

For all pixels but the last one, do a 32bit load/store + 8bit immediate store
instead of byte by byte copying.

11 years agoadd internal babl_parse_double; to avoid using atof
Øyvind Kolås [Mon, 9 Jun 2014 00:30:38 +0000 (02:30 +0200)]
add internal babl_parse_double; to avoid using atof

atof is locale dependent; it was being used two places parsing floating point
values from environment variables.

11 years agoextend conversions to n_components to pad with 0s
Øyvind Kolås [Mon, 28 Apr 2014 21:36:04 +0000 (23:36 +0200)]
extend conversions to n_components to pad with 0s

Test coverage updated to check these cases.

11 years agoimprove how RGBA buffers are copied to n_component
Øyvind Kolås [Mon, 28 Apr 2014 13:34:51 +0000 (15:34 +0200)]
improve how RGBA buffers are copied to n_component

11 years agoadd n_components casting test
Øyvind Kolås [Mon, 28 Apr 2014 13:49:39 +0000 (15:49 +0200)]
add n_components casting test

11 years agoresolve ambiguous calling of real_babl_log with va_args
Paul Fredrickson [Tue, 18 Mar 2014 03:17:43 +0000 (20:17 -0700)]
resolve ambiguous calling of real_babl_log with va_args

In babl-internal.h there are two different ways of calling real_babl_log.
One matches the macro definitions of babl_log which expects an arbitrary
number of parameters, and the other is to pass a va_list used to access
those parameters. The latter case can be found in the function definition
of babl_log when an appropriate macro definition is not selected.

It may be that some platforms implement varargs in such a way that
passing a va_list pointing to the params of another call stack is the
same as passing those parameters directly, but that definitely isn't
the case on mac OS X, where this results in corrupted strings when
calling babl_log or babl_fatal.

The solution here is to create a varargs-enabled version of real_babl_log
that accepts a va_list, and have all calls eventually call into that.

(This may not be seen under normal configurations. This was discovered
while trying to build with a hand-crafted config.h in Xcode.)

11 years agoFix const warning
Daniel Sabo [Wed, 5 Mar 2014 12:56:15 +0000 (04:56 -0800)]
Fix const warning

11 years agoRevert "Use absolute error instead of average error for path check"
Daniel Sabo [Fri, 28 Feb 2014 00:25:45 +0000 (16:25 -0800)]
Revert "Use absolute error instead of average error for path check"

I would still like to use absolute error in the future because it
would remove the relationship between the number of zeros in the
test pixels and the total error score, but we do not seem to be at
a stage where that is practical yet (bug 725339).

This reverts commit 56be40fbef61fd32672209d38a5e874fea603e82.

Conflicts:
babl/babl-fish-path.c

12 years agotests: Use rand when random is unavailable
Daniel Sabo [Sun, 2 Feb 2014 07:13:28 +0000 (23:13 -0800)]
tests: Use rand when random is unavailable

12 years agoDisable babl-gen-test-pixels when random is missing
Daniel Sabo [Sun, 2 Feb 2014 04:22:49 +0000 (20:22 -0800)]
Disable babl-gen-test-pixels when random is missing

babl-gen-test-pixels is only needed to regenerate the source
pixels and doesn't need to be run as part of the normal build
process.

12 years agoAdd automake 1.13+ test outputs to .gitignore
Daniel Sabo [Sun, 2 Feb 2014 04:32:24 +0000 (20:32 -0800)]
Add automake 1.13+ test outputs to .gitignore

12 years agoAdd babl-ref-pixels.inc to EXTRA_DIST
Daniel Sabo [Fri, 31 Jan 2014 07:48:26 +0000 (23:48 -0800)]
Add babl-ref-pixels.inc to EXTRA_DIST

12 years agoRemove old references to introspection
Daniel Sabo [Fri, 31 Jan 2014 07:47:48 +0000 (23:47 -0800)]
Remove old references to introspection

12 years agoUse a static set of reference pixels
Daniel Sabo [Fri, 10 Jan 2014 09:51:30 +0000 (01:51 -0800)]
Use a static set of reference pixels

The ref pixels are stored in babl/babl-ref-pixels.inc which
is generated by tools/babl-gen-test-pixels.

12 years agointrospect: Print full precision for the path error
Daniel Sabo [Sun, 12 Jan 2014 02:46:35 +0000 (18:46 -0800)]
introspect: Print full precision for the path error

12 years agoUse absolute error instead of average error for path check
Daniel Sabo [Sun, 12 Jan 2014 02:44:32 +0000 (18:44 -0800)]
Use absolute error instead of average error for path check

12 years agoRemove bad RGB -> Y conversions
Daniel Sabo [Fri, 20 Dec 2013 21:01:12 +0000 (13:01 -0800)]
Remove bad RGB -> Y conversions

12 years agoMostly remove BablImage from babl-fish-reference.c
Daniel Sabo [Tue, 15 Oct 2013 05:22:59 +0000 (22:22 -0700)]
Mostly remove BablImage from babl-fish-reference.c

There is no valid way to trigger these paths, and the BABL_IS_BABL
call on image data produces false positives (see bug 698913).

12 years agoRemove broken introspection bindings
Daniel Sabo [Thu, 10 Oct 2013 12:30:58 +0000 (05:30 -0700)]
Remove broken introspection bindings

They primarily existed to support GEGL, and there are more
solid wrappers around the related functions in GEGL now.

12 years agoPrefer clang as the compiler on OSX >= 10.7
Daniel Sabo [Thu, 10 Oct 2013 12:39:50 +0000 (05:39 -0700)]
Prefer clang as the compiler on OSX >= 10.7

12 years agoRequest a C99 compatible compiler
Daniel Sabo [Wed, 9 Oct 2013 06:17:57 +0000 (23:17 -0700)]
Request a C99 compatible compiler

12 years agoUse SSE2 u16 conversions for gamma <-> gamma
Daniel Sabo [Sun, 30 Jun 2013 12:12:52 +0000 (05:12 -0700)]
Use SSE2 u16 conversions for gamma <-> gamma

12 years agobase: For RGB->Y, use sRGB primaries that are adapted to a D50 illuminant.
Michael Henning [Sun, 29 Sep 2013 16:48:04 +0000 (12:48 -0400)]
base: For RGB->Y, use sRGB primaries that are adapted to a D50 illuminant.

Thanks to Elle Stone for pointing this out.

12 years agoIncrease the precision of ref gamma conversions
Daniel Sabo [Sun, 14 Jul 2013 06:42:08 +0000 (23:42 -0700)]
Increase the precision of ref gamma conversions

Use a 3 round Newtons method for the fast version. This should be
fully accurate for floats in [0, 1], less so for very small values
but they're in the the linear part of the sRGB curve.

For the reference conversions the standard C pow() function is
used, which give accuracy far in excess of anything we need.

12 years agotests: output with more details when grayscale_to_rgb fails
Téo Mazars [Sun, 4 Aug 2013 18:14:31 +0000 (20:14 +0200)]
tests: output with more details when grayscale_to_rgb fails

12 years agoextensions: Don't perform strict comparisons on floating point values
Téo Mazars [Sat, 3 Aug 2013 16:15:15 +0000 (18:15 +0200)]
extensions: Don't perform strict comparisons on floating point values

12 years agoextensions: Lab has ab components in [-128, 127]
Téo Mazars [Sun, 30 Jun 2013 15:26:16 +0000 (17:26 +0200)]
extensions: Lab has ab components in [-128, 127]

12 years agoextensions: clamping to [0.0, 1.0] is not needed
Téo Mazars [Sun, 30 Jun 2013 13:58:43 +0000 (15:58 +0200)]
extensions: clamping to [0.0, 1.0] is not needed

As babl allows out of sRGB gamut values.

12 years agoextensions: do not truncate values to float
Téo Mazars [Sun, 30 Jun 2013 11:36:00 +0000 (13:36 +0200)]
extensions: do not truncate values to float

12 years agoextensions: Add an even more naive CMY color space to naive-CMYK.c
Téo Mazars [Thu, 27 Jun 2013 20:21:28 +0000 (22:21 +0200)]
extensions: Add an even more naive CMY color space to naive-CMYK.c

12 years agoextensions: naive-CMYK. works perceptually
Téo Mazars [Thu, 27 Jun 2013 19:12:53 +0000 (21:12 +0200)]
extensions: naive-CMYK. works perceptually

12 years agoextensions: Add the Y'CbCr ITU-R BT.709 Color Space
Téo Mazars [Wed, 26 Jun 2013 21:00:05 +0000 (23:00 +0200)]
extensions: Add the Y'CbCr ITU-R BT.709 Color Space

A variation of the current Y'CbCr (BT.601 or 470?), needed downstream.

12 years agoAdd hsl tests to gitignore
Téo Mazars [Mon, 24 Jun 2013 21:01:09 +0000 (23:01 +0200)]
Add hsl tests to gitignore

12 years agoextensions: Add the HSL color space
Téo Mazars [Mon, 24 Jun 2013 20:55:35 +0000 (22:55 +0200)]
extensions: Add the HSL color space

Needed at least as legacy

12 years agoextensions: Refactor HSV.c and add the simple "HSV" model
Téo Mazars [Thu, 20 Jun 2013 20:11:23 +0000 (22:11 +0200)]
extensions: Refactor HSV.c and add the simple "HSV" model

12 years agoextensions: Make HSV works on perceptual color space
Téo Mazars [Thu, 20 Jun 2013 18:16:17 +0000 (20:16 +0200)]
extensions: Make HSV works on perceptual color space

12 years agogegl-fixups: Fix warning about ambiguous sign
Daniel Sabo [Tue, 18 Jun 2013 04:48:39 +0000 (21:48 -0700)]
gegl-fixups: Fix warning about ambiguous sign

12 years agoGCC+Win32: Ensure stack alignment in SSE code
Daniel Sabo [Tue, 18 Jun 2013 04:33:49 +0000 (21:33 -0700)]
GCC+Win32: Ensure stack alignment in SSE code

Without this option GCC will generate bad code that attempts to
push SSE variables onto an unaligned stack.

12 years agoUse double constants in reference gamma
Daniel Sabo [Wed, 12 Jun 2013 22:20:10 +0000 (15:20 -0700)]
Use double constants in reference gamma

12 years agoRemove sse-fixups, superseded by sse2-int8
Daniel Sabo [Mon, 10 Jun 2013 23:51:40 +0000 (16:51 -0700)]
Remove sse-fixups, superseded by sse2-int8

12 years agoAdd SSE2 float -> byte conversions
Daniel Sabo [Mon, 10 Jun 2013 23:48:36 +0000 (16:48 -0700)]
Add SSE2 float -> byte conversions

12 years agoUse Loren's gamma conversions for RGB, YA, and Y
Daniel Sabo [Mon, 10 Jun 2013 16:48:00 +0000 (09:48 -0700)]
Use Loren's gamma conversions for RGB, YA, and Y

12 years agoLookup table based conversions for cairo-ARGB32
Daniel Sabo [Tue, 30 Apr 2013 18:52:51 +0000 (11:52 -0700)]
Lookup table based conversions for cairo-ARGB32

Because who doesn't love giant lookup tables?

12 years agoAdd two-table header to sources
Daniel Sabo [Fri, 31 May 2013 22:09:45 +0000 (15:09 -0700)]
Add two-table header to sources

12 years agoAdd two-table gamma conversions
Daniel Sabo [Fri, 31 May 2013 20:35:43 +0000 (13:35 -0700)]
Add two-table gamma conversions

This is kind of a silly conversion method, but it
works and nothing faster has been forthcoming.

12 years agoAdd some float conversions for grey
Daniel Sabo [Fri, 31 May 2013 20:25:28 +0000 (13:25 -0700)]
Add some float conversions for grey

12 years agoSSE2-optimized gamma correction
Loren Merritt [Mon, 29 Apr 2013 09:49:18 +0000 (09:49 +0000)]
SSE2-optimized gamma correction

7x faster than the scalar implementation.
(4x the obvious way from simd, and the other 1.75x because I'm exploiting
knowledge of the ieee754 float format rather than using portable frexp().)

12 years agoOptimize gamma correction
Loren Merritt [Thu, 25 Apr 2013 17:50:53 +0000 (17:50 +0000)]
Optimize gamma correction

Switch from Chebyshev polynomial to Newton's method, which is both simpler and
1.5x faster for the same precision.

12 years agoRemove rgbA float <-> rgba float from gggl-lies
Daniel Sabo [Tue, 30 Apr 2013 03:18:07 +0000 (20:18 -0700)]
Remove rgbA float <-> rgba float from gggl-lies

It clamps alpha when babl expects it not to.

12 years agogggl.c: Remove dead code
Daniel Sabo [Tue, 30 Apr 2013 03:13:10 +0000 (20:13 -0700)]
gggl.c: Remove dead code

12 years agogggl-lies.c: Remove dead code
Daniel Sabo [Tue, 30 Apr 2013 02:59:15 +0000 (19:59 -0700)]
gggl-lies.c: Remove dead code

12 years agoShow the details of the fish that caused a failure
Daniel Sabo [Tue, 30 Apr 2013 02:43:41 +0000 (19:43 -0700)]
Show the details of the fish that caused a failure

12 years agoRe-enable gggl-lies
Daniel Sabo [Tue, 30 Apr 2013 01:10:25 +0000 (18:10 -0700)]
Re-enable gggl-lies

It was not the source of the troubles I had blamed it for.

12 years agotests: fix the HSV tests
Michael Natterer [Sun, 7 Apr 2013 15:27:34 +0000 (17:27 +0200)]
tests: fix the HSV tests

12 years agoextensions: HSV.o: return the number of samples processed, not always 0
Michael Natterer [Sun, 7 Apr 2013 14:04:49 +0000 (16:04 +0200)]
extensions: HSV.o: return the number of samples processed, not always 0

12 years agoextensions: change the range of H in HSV.o from 0..360 to 0..1
Michael Natterer [Sun, 7 Apr 2013 13:58:16 +0000 (15:58 +0200)]
extensions: change the range of H in HSV.o from 0..360 to 0..1

12 years agoFix missing AC_MSG_RESULT
Daniel Sabo [Sat, 6 Apr 2013 09:13:11 +0000 (02:13 -0700)]
Fix missing AC_MSG_RESULT

12 years agoUse QueryPerformanceCounter for babl_ticks on Win32
Daniel Sabo [Sat, 6 Apr 2013 03:11:03 +0000 (20:11 -0700)]
Use QueryPerformanceCounter for babl_ticks on Win32

12 years agoAdd SSE2 conversions
Daniel Sabo [Sat, 30 Mar 2013 15:48:52 +0000 (08:48 -0700)]
Add SSE2 conversions

This patch includes two conversions for RaGaBaA -> RGBA. Depending
on the CPU either spin or shuffle is significantly faster. Unless
I can find a consistently fast version I'm going to let them fight
it out in the babl startup benchmarks.

12 years agoDisable gegl-lies conversions
Daniel Sabo [Sat, 6 Apr 2013 03:47:56 +0000 (20:47 -0700)]
Disable gegl-lies conversions

They lazy table generation these conversions use causes
babl to overestimate their cost while also overestimating
their accuracy.

I used "#if 0" rather than disabling the library because I
want to ensure the conversion gets removed without people
needing to do rm lib/babl-0.1/*

12 years agoRemove duplicate conversions in gggl and gggl-lies
Daniel Sabo [Sat, 6 Apr 2013 03:45:00 +0000 (20:45 -0700)]
Remove duplicate conversions in gggl and gggl-lies

12 years agoRemove gggl rgbA <-> rgba
Daniel Sabo [Sat, 30 Mar 2013 03:14:40 +0000 (20:14 -0700)]
Remove gggl rgbA <-> rgba

12 years agoMinimal float -> u8, u16 conversions
Daniel Sabo [Wed, 30 Jan 2013 02:41:44 +0000 (18:41 -0800)]
Minimal float -> u8, u16 conversions

Add some simplistic but "accurate" float -> u8 and float -> u16
conversions to make more non-reference paths usable.

The main difference from the existing conversions is that these
clamp out of range values and make the path error checker happy.

I also had to fudge the float-to-8bit slightly because the prior
values cause it to check for the rounding on an exact 0.5 value.

12 years agoAdd --disable-docs option to configure
Daniel Sabo [Thu, 7 Feb 2013 19:24:12 +0000 (11:24 -0800)]
Add --disable-docs option to configure

12 years agoAdd introspection function for BablFishPath
Daniel Sabo [Tue, 29 Jan 2013 10:13:24 +0000 (02:13 -0800)]
Add introspection function for BablFishPath

12 years agoInstall babl-introspect.h
Daniel Sabo [Tue, 29 Jan 2013 00:26:56 +0000 (16:26 -0800)]
Install babl-introspect.h

13 years agoFix babl-stats page encoding for Firefox
Daniel Sabo [Sun, 9 Dec 2012 20:48:32 +0000 (12:48 -0800)]
Fix babl-stats page encoding for Firefox

Add <meta Content-Type> to babl-stats.html so Firefox renders
it with the correct encoding.

13 years agobabl: always allocate enough memory
Massimo Valentini [Wed, 5 Dec 2012 18:22:36 +0000 (19:22 +0100)]
babl: always allocate enough memory

13 years agobabl: don't crash processing same format models
Massimo Valentini [Wed, 5 Dec 2012 17:52:16 +0000 (18:52 +0100)]
babl: don't crash processing same format models

with different component number

13 years agobabl: fix conversion path cost evaluation
Massimo Valentini [Wed, 5 Dec 2012 17:52:03 +0000 (18:52 +0100)]
babl: fix conversion path cost evaluation

and silence compiler warnings

13 years agoUpdate tests/ gitignore.
Jehan [Mon, 26 Nov 2012 11:51:17 +0000 (20:51 +0900)]
Update tests/ gitignore.

13 years agoRevert "tests: adjust float to 8bit regression test for new sRGB precision"
Massimo Valentini [Fri, 24 Aug 2012 08:06:01 +0000 (10:06 +0200)]
Revert "tests: adjust float to 8bit regression test for new sRGB precision"

This reverts commit 2675787f341ce259f9abec3e326b5efece45ecbf.

the literal 0.3 assigned to a float is approximated to a number
slightly greater than 0.3 (3/10) ->

lrint ((0.3 + epsilon) * 255) == lrint (76.5 + 255 * epsilon) == 77

13 years agoAUTHORS: markup and email fix.
Jehan [Tue, 20 Nov 2012 16:10:22 +0000 (01:10 +0900)]
AUTHORS: markup and email fix.

13 years agoBug 688217 - cleaning out an unneeded include of stdint.h.
Jehan [Tue, 20 Nov 2012 16:06:06 +0000 (01:06 +0900)]
Bug 688217 - cleaning out an unneeded include of stdint.h.

13 years agoAUTHORS: markup fixup
Øyvind Kolås [Mon, 19 Nov 2012 20:39:43 +0000 (21:39 +0100)]
AUTHORS: markup fixup

13 years agoupdate AUTHORS file
Øyvind Kolås [Mon, 19 Nov 2012 01:32:44 +0000 (02:32 +0100)]
update AUTHORS file

13 years agoBug 688217 - relies on actual DLL path for locating lib directory on Windows.
Jehan [Wed, 14 Nov 2012 04:26:06 +0000 (13:26 +0900)]
Bug 688217 - relies on actual DLL path for locating lib directory on Windows.

13 years agoget rid of process_chunks
Øyvind Kolås [Wed, 14 Nov 2012 01:02:00 +0000 (02:02 +0100)]
get rid of process_chunks

13 years agoMove chuking of stack allocated buffer to innermost loop
Øyvind Kolås [Wed, 14 Nov 2012 00:36:50 +0000 (01:36 +0100)]
Move chuking of stack allocated buffer to innermost loop

Moves the logic to the only place where it is needed, speeding up the other,
more likely and hopeful code path by not needing to do the conditionals at
all.

13 years agoMichael Henning <drawoc@darkrefraction.com>
Øyvind Kolås [Tue, 13 Nov 2012 22:06:21 +0000 (23:06 +0100)]
Michael Henning <drawoc@darkrefraction.com>

Clean up babl_process_chunks a bit.

13 years agolower max stack alloced buffer size to 14000px (for win32)
Øyvind Kolås [Sat, 27 Oct 2012 23:08:56 +0000 (01:08 +0200)]
lower max stack alloced buffer size to 14000px (for win32)

13 years agoreduce size of max tempbuffer, and do chunking in fewer cases
Øyvind Kolås [Sat, 27 Oct 2012 20:17:34 +0000 (22:17 +0200)]
reduce size of max tempbuffer, and do chunking in fewer cases

Chunking is now only done for multi-step fish paths and reference conversions.

13 years agoLimit the size of temporary buffers used by babl.
Øyvind Kolås [Sat, 27 Oct 2012 17:47:52 +0000 (19:47 +0200)]
Limit the size of temporary buffers used by babl.

This might fix the issue reported in Bug 686557, though more logic can be
applied, only do this if it is a multi-step conversion and temporary buffers
would actually be needed.

13 years agoHSV and test: minor style cleaning before merge
Michael Muré [Tue, 28 Aug 2012 07:02:31 +0000 (16:02 +0900)]
HSV and test: minor style cleaning before merge

13 years agoHSV test
Maxime Nicco [Fri, 27 Jul 2012 10:57:52 +0000 (12:57 +0200)]
HSV test

Factorize code

13 years agoHSV add test
Maxime Nicco [Thu, 26 Jul 2012 16:05:51 +0000 (18:05 +0200)]
HSV add test

13 years agoHSV fix Makefile
Maxime Nicco [Thu, 26 Jul 2012 16:02:38 +0000 (18:02 +0200)]
HSV fix Makefile

13 years agoHSV Cleanup
Maxime Nicco [Wed, 25 Jul 2012 10:04:55 +0000 (12:04 +0200)]
HSV Cleanup